Do I Really Want to read this? Well, this is up to
you I'm not going to say sure read this. Usually my writings are casual and very beginner, this is my "writing revolution." This doc is for beginner Unix/Linux Users or advanced Windows 95/NT users, who want to switch o/s's. These are my notes and just something I put together for others. Let me know what you think.
What is Linux? Linux is an o/s for Intel-Based PC's. It's free of commercial copyrights and a Unix clone. Thousands of programmers put it together, starting with Linus Torvalds.
Why do I want to use Linux? Linux is the only o/s today that is freely available to provide multitasking, multiprocessing capabilities for multiple users on IBM PC-compatible hardware platforms. You can also access to the kernel source code to modify & expand it to your needs.
Overview of Linux/Unix Features
Multitasking-describes the ability to seemingly
execute multiple programs at the same time without hindering each application
Multiuser- uses same user interfaces as WinNT but
quicker
Programmable Shells- gives Linux its trademark "most flexible o/s available"
Communications & Networking-tightly coupled networking capabilities, also has the built-in
flexibility of those features.
History on Unix/Linux
Linux originated from Minix, created by Andrew tannebaum. But Linux's history is tied to the history of Unix. AT&T's Ken Thompson started the Unix idea. BSD released their first version in 1978. USL-Unix System Laboratories-developed Unix operating systems since the early '80's. Microsoft developed their Unix version in the late 70's to early 80's. (Microsoft in Unix production, one word: wow) Sun Microsystems is mostly responsible for the marketability of Unix systems, because of SunOS and now Solaris. In 1993 Novell Inc. (maker of Novell Netware, ya think?) purchased USL from AT&T making them the owner of the "Unix" copyright.
2.Choosing the right hardware for Linux
System CPU-Intel 80386 or later, clone chips included
System Bus-ISA & EISA. MCA bus used on IBM's PS/2 is NOT supported. The new PCI bus is supported.
Memory-Linux itself requires little RAM. 4M is recommended. For XFree86(clone of X windows) requires at least 16M of virtual memory
Disk Space-150-200M, my full install including XFree86 uses 699M depending on what packages you will install.
Monitor-text based terminal CGA-EGA-VGA-SVGA cards & monitors. Also provides support for vendors of-TSENG, WESTERN DIGITAL, TRIDENT, ATI, NCR, CIRRUS LOGIC, OAK, S3, COMPAQ, PARADISE
CD-Rom-Most IDE/ATAPI CD-Rom
3.Installing Linux(woohoo here we go)
Preparing- First Off, Calm Down, this is EASY!
MS-DOS Boot Disk-Place a formatted floppy in the drive. Copy your CONFIG.SYS, AUTOEXEC.BAT,FDISK.EXE, FORMAT.COM, and any driver files you'll need. Keep this disk, it'll ber important I promise.
Backing Up Your System- Most computer users today use tape drives or one of those groovy zip drives (i want one!) So you can back up with that or with floppies (lots of them) syntax for backing up is: backup from to (EX: backup c: a:)
Creating Boot/Root Disk- Well this is where you read the readme files provided on the CD. Using RAWRITE.EXE you'll copy the files for booting. I may comeback and add the distribution setups but I need to research to do that, and I'm already behind on this as it is NOW!
Partitioning- Okay, please make sure your drive is backed up, max. data loss is assured. Partitioning will split your hard drive into sections. In case you want to keep another o/s, such as Win95, NT, or O/S2, maybe even another distribution of Linux.
Using FDISK-First plan out what you're going to have on your system, o/s's I mean. If you're going to have let's say LINUX & WINNT, split the drive in two partitions, etc.. then you get into FDISK ("fdisk" @ the dos prompt) delete all the partitions then "create dos partition of Logical DOS drive" (option "1") that will be when you fix the partitions to half, then go to option 2 and set the "primary" Then exit FDISK and reboot your computer, make sure you put the DOS boot disk from earlier in drive a. At the DOS prompt type FORMAT C: /S. After it's finished formatting, reboot with the LINUX boot disk.
Preparing your HD for LINUX- LILO(LInux LOader) loads and uncompresses Linux, follow the directions for installation on your distrib.
Partitioning Drive for Linux- At the shell prompt type FDISK, the fdisk will startup, hit "m" and study the commands. To began partitioning hit "p" and return to display the partition table, make sure your partitions are correct. Some Linux distribs. add their own swap partition, if not, swap partitions are explained earlier allowing your memory to move faster. Swap Partitions are 2 times your memory size(16M Ram=32M swap) so follow the help section(m) to create a new partition. Hit "t" at fdisk prompt then select the partition you set up for swap and put "82" You can install Linux on a FAT filesystem so make the decision to keep FAT or change it to Linux Native(option 83 or the "t" command)
Installing the Linux System- If you got the last section you're doing good. I made that a bit broad, find me if you need help, no problem at all. Well, to install your Linux use the boot disk and have the cd handy and follow the prompts for the install, no biggie. Pick your packets to install select the partitions to install and bam finished.
Problems??- LILO should load after Linux installation, if it doesn't go back to DOS and reformat, then redo the steps above. Simplest worry, any other problems find me and I'll help you out, or at least point you in the right direction.
5.Running Linux Applications-woohoo! you are now running Linux...well why'd you get it? well let's check it out. You get a login prompt enter "root" and your password.
Managing Users-
Logging On and Off- LOGOUT <return> at the prompt
Adding Users- ADDUSER(NAME) then follow prompts
Changing Passwords- PASSWD at prompt, Admins use SU USER-NAME then PASSWD to change clients passwords
Basic Commands-
cd- change directory
ls- = to DOS DIR
cp- copy file (cp from to)
mv- move files(mv from to)
rm- delete files
mkdir- make dir
rmdir- remove dir
man- Online Help (man [topic])
more- displays file content
less- ^^^^^^^^^^
clear- clear screen
Shutting Down Linux- IMPORTANT! never just shut off the power, hard drive problems may occur use SHUTDOWN, see command line references.
Running Linux Programs-
bc- command line calculator
workbone- text based cd player
sc- spreadsheet calculator
minicom- pretty basic communication software
6. X Windows
What is X Windows? Simple, graphical operating environment.
Installing XFree86- XFree is the free x-windows software provided. Setup will usually ask you if you want XFree86 installed.
Hardware Support- check docs on cd
Configuring- run /usr/share/Program_Groups/Admin_Tools/XFree86Setup
X Windows Resource Files- see man pages for startx or xrdb
Start XWindows- startx @ shell prompt
7. Improving System Security
Physical Security- don't worry about this, unless of course parents, enemies, etc are around
Password Security- change passwords regularly, 6 characters long, maybe something with a symbol like root!root or bob&bob
Logon Secutiy-
Accounts w/out Passwords- disable them or add pw
Unused accounts- delete them
Command Accounts- logon ID's that run a given command and then exit. Lower risks by ensuring no command line input will run.
File Security- make sure users cannot access system files
Permissions- see CHMOD in command line
SUID & SGID Programs- check for holes
Recording SU command- SU is usually stored in /va/adm/syslog
8. Linux Shells-
Logging on- Enter user id & password this information is stored in etc/passwd
Understanding Shells- after you logon to Linux you are in a shell. Linux shells can be compared to MS-DOS's COMMAND.COM.
Changing Shell Variables- This is self explainatory after you find the file to edit.
bash/bourne- .profile (in home dir)
c - .login
In the syntax of Variable=Value
In the beginning of this I was going to have alot more on shell programming but the length is a bit too long so I've editted out TONS of stuff out of this 4-5 sections and limiting tthis one, and a few others ones coming ahead, gotta have a few docs to write :)
9. Command-Line Reference
at- schedule jobs to execute
Usage: at -q queue time
at -l
at -r job-ids
batch
banner- produces large banner
Usage: banner [-w[n]] strings
Ex: banner hello (produces hello in large format)
bash- starts bash shell
Usage: sh [options] file
Options:
-c string - If -c flag is present, command are read from string, after string, they're assigned to the positional parameters, starting with $0
-i - shell is interactive
-s - commands are read from standard input
- - signals the end of options
-norc - Do not read & execute ~/.bashrc
-profile - do not read either system startup file /etc/profile or personal ini
batch- see "at"
cal- calendar
Usage: cal [-day] [-month] [-year]
cat-concatenates files, display-files
Usage: cat [options] filelist
Options:
filelist- optional list of files
-b - number all nonblank output lines
-e - = to vE
-n - number all output lines
-s - Replaces multiple, adjacent blank lines with a single blank line
-t - = to -vT
-v - Displays control characters with ^notation
-A - = to -vET
-E - Displays a $ after each line
-T - Display TAB as ^I
cd-changes directory
Usage: cd dirname
chgrp-changes group ownership of a file
Usage: chgrp [options] group filelist
Options:
-c - Verbosely describes files who change
-f - No error messages
-v - Verbosely describes ownership changes
-R - changes ownership of dir's & their contents
chmod-changes permissions of files
Usage: chmod [options] mode filelist
Options: see above (chgrp)
chown: change ownership of the file
Usage: chown [options] user filelist
Options: see above also
clear: clears screen
Usage: clear
compress- compresses specified files
Usage: compress [options] [file-name]
Options:
-c - no files changed, written to stdout
-C - prevents subdivision of the file into blocks
-d - Uncompresses files
-f - Overwrites output files
-v - while each file is compressed
cp- copies files
Usage: cp [options] sourcefile destfile
cp [options] sourcelist destdirectory
Options:
-a - preserves structure and attributes of the original
-b - makes backups of the files about to be overwritten
-d - copies symbolic links as symbolic links
-f - removes existing destination files
-i - prompts whether to overwrite existing
crontab- informs cron daemon of the programs
Usage: crontab -l [-u user]
crontab -e [-u user]
crontab -d [-u user]
Options:
-l - lists your crontab file
-e - edits crontab file
-d - deletes a user's crontab file
-u user - specifies a particular user's crontab file to manipulate. MUST BE ROOT
csh- See tcsh
cut- extracts fields from a list of files
Usage: cut -cchar=pos filelist
cut -ffields =dfield -sep -s filelist
date- displays system date and time
Usage: date MMDDhhmm
df- reports the amount of space that is free on the disk
Usage: df [options] filesystems
Options:
filesystems-optional list of filesystem
-a - lists file system that have 0 blocks
-i - lists inode usage info instead of block usage
-k - prints sizes in 1k blocks instead of 512-byte blocks
-P - uses POSIX output format
-t fstype- limits the listing to filesystems of type fstype
-x fstype- opposite of ^^^
-v - Ignored, (included for System V versions of df)
diff= compares two text files & reports what needs to be changed to make it look like the other
Usage: diff [options] oldifle newfile
Options:
oldfile - the file you want compared to
newfile - the file you are comparing
-b - causes leading and trailing blanks and tabs to compare as =
-e - generates a script suitable for the ed editor
-f - similar to the -e flag
du- displays amount of space being used b directories or files
Usage: du [options] name
Options:
names - list of directories or files
-s - causes only a total for each of the specified names
-a - causes each file encountered to be displayed with its size
-b - prints sizes in bytes
-x - only directories in currently mounted file system
-L - shows disk space used by the file appointed to by a symbolic link
echo- takes arguments passed to it and writes them to standard output.
Usage: echo [-n] [-e] string
Options:
-n - normally, echo follows with all the output with a new line. This command stops that.
-e - enables interpretation of the following character sequences:
\a Alert (bell)
\b Backspace
\c don't print a newline at end
\f Formfeed
\n a new line
\r Carriage return
\t Tab
\v Vertical Tab
\\ Backslash
string - string of characters you want to output
ed= line editor
Usage: ed [-] [-s] [-x]
Options:
- - suppresses the messages produced by e,r,w,q!
-s - suppresses diagnostics
-x - prompts the encryption key to read and write
-p prompt- enables you to specify your own prompt string
filename- name of file you want to edit
env- modifies the environment for the execution of a command without changing current environment
-z - looks inside compressed file and tries to figure out its type
-L - this option causes symbolic links to be followed
-f ffile- tells file that the list of files to identify is found in ffile
find- finds file and directories
Usage: find dirlist match-spec
Options:
dirlist - where what you want to find is
match-spec-
-name file
-user user-id
finger- displays information about users
Usage: finger [options] users
Options:
users - optional list of user names
-s - displays user logon, real name, terminal name & write status, idle time, logon time
-l - process multi-line processes
-p - prevents -l option
-m - restricts matching of the user arguments to the logon name
grep- finds patterns in files
Usage: grep [options] reg-expres filelist
egrep [options] reg-expres filelist
fgrep [options] string filelist
Options:
filelist - optional space-seperated list of files
reg-expres- regular expression to search for
string - string you want to find in files
-v - lists lines that don't match string or reg-expres
-c - counts match lines
-l - only the names are displayed
-h - suppresses the displays of name of the file the match found in
-n - matching line is displayed along with its relative line number
head- prints out the first number of specified lines of the file
Usage: head -lines filelist
Options:
-lines - number of lines to print beginning of the file. Default=10
filelist - list of filenames you want displayed
id- display your identification to the sytem
Usage: id [options]
Options:
-g - Prints Group ID
-G - Prints supplementary groups
-n - Prints user or group name
-r - Pritns the real user or group ID
-u - Prints only the User ID
join- extracts the common lines from two sorted files
Usage: join [options] file1 file2
Options:
file1 - first file used in the join
file2 - second file used in join
-an - unmatching lines from either file
-e string- replaces empty output fields with string
-j n m - joins the two files on the mth field of file n
kill- allows you to send a signal to a process that is currently executing
Usage: kill [-signal] pid
kill -l
Options:
-signal - optional signal that can be sent
pid - process id of the process you want to sedn the specified signal
less- general purpose file pager, similar to move
Usage: less file-names
ls- equal to DOS's dir command
Usage: ls [options] [filelist]
Options:
-a - Show all files
-C - Columnar output, down
-x - Columanr output, across
-d - treats each entry as a directory
-l - Long Listing
mesg- control where you allow other to message your terminal
Usage: mesg [n:y]
Options:
n - Does not allow messages
y - Allows messages
mcd- used to report & set the current MS-DOS device and directory
Usage: mcd [ms-dos directory]
mcopy- copies files to and from MS-DOS filesystem
Usage: mcopy [options] sourcefile targetfile
Options:
-t - Text file transfer
-n - no warning for overwrite
-v - Verbose Mode
-m - preserves modification time
sourcefile- MS-DOS file being copied
targetfile- destination of file
mdel- deletes an MS-DOS file from DOS file system
Usage: mdel [-v] msdos-file
Options:
-v - Verbose Mode
ms-dosfile- file to delete
mdir- displays contents of an MS-DOS directory
Usage: mdir [-w] name
Options:
-w - display listing in "wide format"
name - name of directory
mkdir- create new directories
Usage: mkdir [-m mode] [-pdirnames] dir
Options:
-m mode - sets directory to permissions to mode
-p dirnames- creates all non-existent parent directories
dir - directory to create
more- general purpose pager, used to view text that scrolls off the screen
Usage: more [options] file-names
Options:
-n - interger used to set window size to n lines long
-c - clears one line and draws another
-d - displays "Press Space To continue"
-f - counts logical lines instead of screen lines
-l - does not treat ^L (form feed) character
-s - multiple blank lines suppressed
-p - clears screen & displays text
-u - suppresses underlining
file-names- list of files you want displayed
mv- renames a file, moves a file to new directory, renames directory
Usage: mv [-f] [-i] file1 file2
mv [-f] [-i] dir1 dir2
mv [-f] [-i] filelist dir
Options:
-f - moves without prompting
-i - Interactive Mode
file1 - source file
file2 - new filename
dir1 - source directory
dir2 - new directory name
filelist - space seperated list of file names
dir - destinationg directory
newgrp- changes Group ID
Usage: newgrp group
Options:
group - group ID you want to become active in
passwd- maintain user passwords
Usage: passwd [name]
Options:
name - changes password of username SUPER USER ONLY
paste- produces columnar output from files, usually used with cut
Usage: paste -ddelim filelist
paste -s -ddelim filelist
Options:
-ddelim - shows what character to delimit each column
filelist - list of files to paste
-s - causes paste to traverse each file
pr - allows formatting to a file while printing it to standard output
Usage: pr [options] filelist
Options:
filelist - space= delimited list of files
-page - begins printing with page page
-col - specifies col columns of output
-m - merges file
-d - double spaces the output
ps- reports the status of processes
Usage: ps [options]
Options:
-l - long listing
-u - prints in user format
-j - output in jobs format
-s - output in single format
-v - output in virtual memory format
-m - displays memory information
-a - shows processes without a terminal
-x - displays processes without a terminal
-S - adds child CPU time and page faults
-c - lists command name from kernel task structure
-e - shows environment
-w - dispalys in wide format
-h - no header
-r - displays running processes only
-n - provides numeric output (user)
pwd- reports your current directory
Usage: pwd
recp- used to copy files between computers
Usage: rcp [options] file1 file2
Options:
-r - copies subdirectories
-p - preserves times and access modes
-k - requests kerberos tickets
-x - turns on DES encryption for all data
file1,file2- source/destination
files - source files
directory- destination directory
rm- removes files and directory structures
Usage: rm [options] filelist
Options:
filelist - space-delimited list of files to delete
-r - deletes directories in filelist
-i - interactive mode
-f - forced mode
-v - verbose mode
rmdir- removes directory
Usage: rmdir -p dirlist
Options:
-p - deletes parent directories
dirlist - list of directory names
sh- see bash
shutdown- shuts down system
Usage: shutdown [options] time [warning]
Options:
-k - sends warning message, no shutdown
-r - reboots after shutdown
-h - halts after shutdown
-n - doesnt sync disks
-f - fast reboot
-c - cancels already running shutdown
sleep- suspends execution for interval of time
Usage: sleep n
Options:
n - specifies amount of time
split- breaks up a text file
Usage: split -numlines file tagname
Options:
-numline - specifies number of lines
file - file to split
stty- sets terminal device driver line controls
Usage: stty -a =g settings
Options:
-a - shows all settings
-g - like above but produces 12 hexadecimal number seperated by colons
settings - series of stty command
sync- writes the current disk image to HD
Usage: sync
tail- enables you to view the end of a text file
Usage: tail beg-offset -f file
Options:
beg-offset- offset, in lines, within the file
tar- see tar man pages
tcsh- command interpreter similar
Usage: tcsh
tee- splits output in a pipline to 1 or more files
Usage: tee [options] filelist
Options:
filelist - list of files you want to capture the output in
-i - ignores interrupts
-a - filelist is appended with the output instead of overwritten
test- see man pages
time- determines how long a program takes to execute
Usage: time command
Options:
command - command you want to time
touch- changes access and modification times of a file/creates new file with a specified times
Usage: touch [options] MMDDhhmmYY filelist
Options:
MMDDhhmmYY- time to which to set the file
filelist - list of files you want to have specified time
-a - changes access times
-m - same as -a but for modified time
tr- translates or maps characters in a file from one form to another
Usage: tr [options] from-string to-string
Options:
from-string- characters to map fro
\octal - specifies octal value
to-string - string of characters to map into
-c - appends from-string to to-string
-d - deletes characters specified in from-string
-s - strips repeated characters
true- returns a zero exit status that means true in the shell
Usage: true
tty- reports currently logged on device name
Usage: tty -s
Options:
-s - tests standard input
umask- specifies what the default permissions are
Usage: umask mask
Options:
mask 0-no restrictions
1-restrict execute permissions
2- restrict write permissions
4- restrict read permissions
uname- reports the system name and catalog information
Usage: uname [options]
Options:
-s - reports system name
-n - reports node name
-r - reports release number of o/s
-v - reports version number of o/s
-m - reports machine hardware name
-a - reports all the above
uniq- strips out lines that are identical, producing one unique(hence the command) line
Usage: uniq [options] input output
Options:
input - name of file which to read
output - name of file to create
-u - makes uniq to output lines that arent repeated
-d - forces uniq to output lines that were repeated- only one copy of them
-c - produces a report with left column
-fields - counts of fields is skipped
+chars - skips char number of character
uudecode- see uuencode
uuencode- used to format a binary file so that it can be sent over media that does not support ASCII
Usage: uuencode[file] name
uudecode[file]
Options:
file - name of the file to format with uuencode uudecode
name - name to be used for the decoded file
vi- text editor
Usage: vi file-name
wall-writes to all users currently logged onto the system
Usage: wall [file-name]
wc- counts characters, words, lines in a file
Usage: wc [options] filelist
Options:
filelist - files to count
-c - counts only the number of characters
-w - counts number of words
-l - counts only lines
which- searches through your path for specified program
Usage: which program
Options:
program - command you want to find
who- reports users on the system
Usage: who [options] utmp-like-file
who am i
Options:
utmp-like-file- alternate file to obtain logon info
-u - reports users
-T - indicates terminal acceptance of messages
-H - prints header line
-q - quick version of output
write- communcates with a user
Usage: write user tty
Options:
user- username of the user to contact
tty- specifies tty
That was a big section, just keep this close to your computer, read over it more than once.
A Few Words,
I've cut out 5 major sections of this, so you'll see them coming out soon. Sorry about the delay , I'm behind about 2-3 weeks, due to the fact that i'm in groups and we've all been working. :) Including a local one we're starting.. Then there's my projects, some java/TCL things. This is about 50-65 hours of work, hope you get somethin outta it . 15 hours of it was without A/C in TX weather (acckkk)
Special Thanks to Spirithawk for sendin me a book on linux :) Lemme Know what you think
0utkast
(hmm i signed my handle..weird...)
p.s. 35 kb ..not bad i was expecting at least a meg..hehe